name_list = ["lisi","wangwu"]
print(name_list[0]) #下标从0开始 
print(name_list[-1])# 反向索引
# .index 查找下标
print(name_list.index("lisi"))
#修改特定位置的元素值
name_list[0] = "zhangsan"
print(name_list)
# 插入元素  列表.insert(下标, 元素)，在指定的下标位置，插入指定的元素
my_list = [1,2,3,4,5]
my_list.insert(1,"itheima")
print(my_list)
# 追加元素 列表.append(元素)，将指定元素，追加到列表的尾部
name_list.append("zhaoliu")
print(name_list)
# 追加元素2 列表.extend(其它数据容器)，将其它数据容器的内容取出，依次追加到列表尾部
name_list.extend([1,2,3])
print(name_list)
# 删除元素   
# 语法1：del 列表[下标]
del name_list[0]
print(name_list)   
# 语法2：列表[下标]
name_list.pop(0)
print(name_list)
# 统计列表内，有多少元素   len(列表)
print(len(name_list))
# 遍历
my_list = [1,2,3]
for i in my_list:
    print(i)


# 元组  无法修改的数据容器
"""
变量名称 = ()
变量名称 = tuple()
index() 查找某个数据，存在返回对应的下标
count() 统计某个数据出现的次数
len(元组) 统计元组内的元素个数
"""


# 字符串  同元组一样，字符串是一个：无法修改的数据容器
# 查找特定字符串的下标索引值   语法：字符串.index(字符串)
my_str = "itcast and itheima"
print(my_str.index("and"))
# 替换 语法：字符串.replace(字符串1，字符串2） 功能：将字符串内的全部：字符串1，替换为字符串2 注意：不是修改字符串本身，而是得到了一个新字符串哦
name1 = "gvretgerf"
new_name1 = name1.replace("gv","cv")
print(new_name1)
# 字符串的分割 语法：字符串.split(分隔符字符串） 功能：按照指定的分隔符字符串，将字符串划分为多个字符串，并存入列表对象中
name2 = "fqef gtrg hbrt"
name2_list = name2.split(" ")
print(name2_list)
# 字符串的规整操作（去前后空格） 语法：字符串.strip()
name2 = "fqef gtrg hbrt"
print(name2.strip())
# 统计字符串中某字符串的出现次数 语法：字符串.count(字符串)
name2 = "fqef gtrg hbrt"
print(name2.count("t"))
# 统计字符串的长度 语法：len(字符串)
name2 = "fqef gtrg hbrt"
print(len(name2))


# 切片 
"""
即：列表、元组、字符串，均支持进行切片操作
切片：从一个序列中，取出一个子序列

语法：序列[起始下标:结束下标:步长]  下标开始，不包含结束下标
"""
# my_list = [1,2,3,4,5]
new_list = [2:4:1]
print(new_list)
new_list1 = [2:4:-1]
print(new_list1)

# 集合  去重且无序  {}  不支持：下标索引访问
# 添加 add
my_set = {"dqdr","fhwue"}
my_set.add("erg")
print(my_set)
#移除元素 语法：集合.remove(元素)，将指定元素，从集合内移除
my_set.remove("dqdr")
print(my_set)
# 修改 从集合中随机取出元素 语法：集合.pop()，功能，从集合中随机取出一个元素 
# 结果：会得到一个元素的结果。同时集合本身被修改，元素被移除
element = my_set.pop()
print(my_set)
# 取出2个集合的差集 语法：集合1.difference(集合2)，功能：取出集合1和集合2的差集（集合1有而集合2没有的）
# 结果：得到一个新集合，集合1和集合2不变
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.difference(set2)
print(set3)
# 消除2个集合的差集 语法：集合1.difference_update(集合2) 功能：对比集合1和集合2，在集合1内，删除和集合2相同的元素。
# 结果：集合1被修改，集合2不变
set1.difference_update(set2)
print(set1)
print(set2)
# 2个集合合并 语法：集合1.union(集合2) 功能：将集合1和集合2组合成新集合 结果：得到新集合，集合1和集合2不变
set4 = set1.union(set2)
print(set1)
print(set2)
print(set4)


# 字典  {}
my_dict = {
    "sfe": 99,
    "ryhr": 88,
    "thhtbt":66
}
print(my_dict["sfe"])
# 修改元素
my_dict["sfe"] = 100 
# 添加
my_dict["fwe"] = 77   
print(my_dict)     # 100,88,77,66
# 删除
value = my_dict.pop("sfe") 
print(my_dict)  # 88,77,66
# 获取全部的key 语法：字典.keys()，结果：得到字典中的全部Key
keys = my_dict.keys()
print(keys)
# 遍历
keys = my_dict.keys()
for key in keys:
    print([key],{my_dict[key]})
# 排序 sorted(容器, [reverse=True])  注意，排序后都会得到列表（list）对象


